package com.seadragon.app.ksr.model;

import java.util.List;

import com.seadragon.app.ksr.model.tiger.Location;

public class SearchParams {
	private String keyword;
	private String location;
	private int currentPage=1;//for pagination
	private int docsPerPage = 10;// display 10 profiles per page by default
	private Integer distance; //search radius, unit:mile
	private Double latitude;
	private Double longitude;
	private Category category;
	private Range<Integer> reviewScoreRange;
	private Range<Integer> reviewCountRange;
	private List<? extends Location> neighbors;
	private Location targetLocation;
	private SortType sortType; //example. best-match,distance,
	private List<Integer> priceFilters;
	/**
	 * 3 months = 3, 1 year old = 12, and so on.
	 */
	private int ageFilterFrom;
	private int ageFilterTo;
	private String searchType; 
	private Integer ratingFilter; //1,2,3,4,5
	
	public void reset(){
		this.keyword=null;
		this.location=null;
		this.currentPage=1;
		this.docsPerPage=10;
		this.distance = null;
		this.latitude = null;
		this.longitude=null;
		this.category=null;
		this.sortType = SortType.RELEVANCE;
		this.priceFilters=null;
		this.ratingFilter=null;
	}

	public String getSearchType() {
		return searchType;
	}

	public void setSearchType(String searchType) {
		this.searchType = searchType;
	}

	public String getKeyword() {
		return keyword;
	}

	public void setKeyword(String keyword) {
		this.keyword = keyword;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getDocsPerPage() {
		return docsPerPage;
	}

	public void setDocsPerPage(int docsPerPage) {
		this.docsPerPage = docsPerPage;
	}

	public Integer getDistance() {
		return distance;
	}

	public void setDistance(Integer distance) {
		this.distance = distance;
	}

	public Double getLatitude() {
		return latitude;
	}

	public void setLatitude(Double latitude) {
		this.latitude = latitude;
	}

	public Double getLongitude() {
		return longitude;
	}

	public void setLongitude(Double longitude) {
		this.longitude = longitude;
	}

	public Category getCategory() {
		return category;
	}

	public void setCategory(Category category) {
		this.category = category;
	}

	public Range<Integer> getReviewCountRange() {
		return reviewCountRange;
	}

	public void setReviewCountRange(Range<Integer> reviewCountRange) {
		this.reviewCountRange = reviewCountRange;
	}

	public SortType getSortType() {
		return sortType;
	}

	public void setSortType(SortType sortType) {
		this.sortType = sortType;
	}

	public Range<Integer> getReviewScoreRange() {
		return reviewScoreRange;
	}

	public void setReviewScoreRange(Range<Integer> reviewScoreRange) {
		this.reviewScoreRange = reviewScoreRange;
	}

	public List<Integer> getPriceFilters() {
		return priceFilters;
	}

	public void setPriceFilters(List<Integer> priceFilters) {
		this.priceFilters = priceFilters;
	}
	
	public List<? extends Location> getNeighbors() {
		return neighbors;
	}

	public void setNeighbors(List<? extends Location> neighbors) {
		this.neighbors = neighbors;
	}

	public Location getTargetLocation() {
		return targetLocation;
	}

	public void setTargetLocation(Location targetLocation) {
		this.targetLocation = targetLocation;
	}
	
	public Integer getRatingFilter() {
		return ratingFilter;
	}

	public void setRatingFilter(Integer ratingFilter) {
		this.ratingFilter = ratingFilter;
	}

	public int getAgeFilterFrom() {
		return ageFilterFrom;
	}

	public void setAgeFilterFrom(int ageFilterFrom) {
		this.ageFilterFrom = ageFilterFrom;
	}

	public int getAgeFilterTo() {
		return ageFilterTo;
	}

	public void setAgeFilterTo(int ageFilterTo) {
		this.ageFilterTo = ageFilterTo;
	}
	
}
